﻿using System;

namespace OperationPlugins.Applications
{
    /// <summary>
    /// Represents an application instance.
    /// </summary>
    public interface IApplicationInstance : IDisposable
    {
        /// <summary>
        /// Proceeds a login.
        /// </summary>
        /// <exception cref="ApplicationInstanceException">If the login fails.</exception>
        void Login();

        /// <summary>
        /// Creates a new IValidatorProxy.
        /// </summary>
        /// <returns>IValidatorProxy.</returns>
        IValidatorProxy CreateValidator();
    }
}
